// 纯函数
// 1.相同输入产生一定相同的输出
// 2.在执行过程中不会产生任何的副作用

// 
function foo(num1, num2) {
  return num1 * 2 + num2 * num2
}


// 以下不是纯函数
var name = "abc"
function bar() {
  console.log("bar");
  name = "aaa"
}
bar()

function baz(info) {
  info.age = 100
}

var obj = {
  name: 'why',
  age: 18
}
baz(obj)
console.log(obj);

// 是否是一个纯函数    √
function f(value) {
  return {
    ...value,
    age: 100
  }
}

// react的函数组件   要求一般都是纯函数
function helloWorld(props) {
  // 下面这条语句就改变了变量，就不是纯函数了
  props.name = "aaa"
}

